package cn.tedu.micro.demo.rabbitmq;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import lombok.extern.slf4j.Slf4j;

/**
 * 底层java客户端代码 最主要的就是管理和创建连接
 * 生产者要使用channel发送消息
 * 消费者要使用channel消费监听消息
 */
@Slf4j
public class MyChannelManager {
    public static Channel createChannel(){
        //目标 ,通过底层java的api组织生成短链接 ,给使用者(生产者 消费者使用)
        //1.创建长连接工厂 准备连接 localhost:5672的rabbitmq
        ConnectionFactory factory=new ConnectionFactory();//工厂就是帮助使用者创建复杂的初始化过程的对象
        //2.提供给长连接工厂 创建连接的必要参数 host port username password
        factory.setHost("localhost");
        factory.setPort(5672);
        factory.setUsername("guest");
        factory.setPassword("guest");
        try{
            //3.创建长连接
            Connection connection = factory.newConnection();
            //4.从长连接中获取channel
            Channel channel = connection.createChannel();
            return channel;
        }catch (Exception e){
            log.error("创建rabbitmq连接失败",e);
        }
        return null;
    }
}
